﻿using Application.Common.Utils;
using Infrastructure.Persistence.Repository;
using Npgsql;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Application.Business.TestSimsilary
{
    public class TestAction
    {
        private SummaryRepository _summaryRepository;

        public TestAction(SummaryRepository summaryRepository)
        {
            _summaryRepository = summaryRepository;
        }
        public async void start(string text)
        {
            JieBa jb = new();
            Shingling sl = new();
            var summaries = await _summaryRepository.GetOnLineSummariesAsync(1, 10);

            List<Simhash> shRes = new();
            foreach (var cur in summaries)
            {
                var curDic = jb.Cut(sl.scrub(cur.Content ?? ""));
                var curSh = new Simhash(cur.Id);
                curSh.GenerateSimhash(curDic);
                shRes.Add(curSh);
            }


            Dictionary<int,Dictionary<int,int>> disRes = new();
            //获取之间的所有距离
            foreach (var cur in shRes)
            {
                disRes.Add(cur.id, new());
                foreach (var nextCur in shRes)
                {
                    if (cur.id == nextCur.id)
                        continue;
                    if (disRes.ContainsKey(cur.id))
                    {
                        var id = cur.id;
                        disRes[id].Add(nextCur.id, cur.distance(nextCur));
                    }
                }
            }
            //找出每一个元素与其他相距最短的
            List<(int, int, int)> latestDistances=new();
            foreach (var cur in disRes.Keys)
            {
                var latestDistance = disRes[cur].Select(c => new { id = c.Key, distance = c.Value }).OrderBy(c => c.distance).FirstOrDefault();
                if(latestDistance is not null)
                    latestDistances.Add((cur, latestDistance.id, latestDistance.distance));
            }
            Console.WriteLine("end>>>");

            //jb.Cut(text);

        }

        public async void GetDistance()
        {
            JieBa jb = new();
            Shingling sl = new();

            #region start结果验证

            var c1 = jb.Cut(sl.scrub("<p>深圳到红河物流拥有一批专业从事运输服务行业的技术骨干和专业队伍。作为运输业的领头羊，为了在当今惊涛骇浪的商海中永立不败之地，特实施了便利各大企业主的“一票法”，即：专人接提、专人分送、专人压车、专人负责的一条龙服务，价格平、速度快、风险低、安全高、整车零担、从门到门。</p><p>深圳市华胜源物流有限公司为您提供24小时全年无休的物流服务。对我们物流的服务不满意，请告诉我们；满意请告诉您的朋友。我们将竭诚为您做到最优质的服务!您满意的笑容是我们全体员工孜孜不倦的追求！欢迎新老客户来电垂询、洽谈业务！</p><p>深圳市华胜源物流有限公司经过几年的逐渐成长，目前已发展成为集物流、仓储、配送、信息管理为一体的物流企业，并已正式开通上海（22小时）、苏州（24小时）杭州（18小时）特快专线。 深圳市华胜源物流有限公司在传统的运输领域中与中国第三方物流同步发展，以物流市场的发展为导向。经过十几年的不懈奋斗，本公司配有大型停车场，公司员工二百多名，自备车辆一百多台，拥有1.5-30吨多种型号货车及平板车，1.5-6吨叉车，办公场地300多平方米，物流基地2000多平方米，仓储面积4000多平方米的专业物流公司，挂靠车辆十余台，大大提高了提货、送货速度、效率及运输的能力，保证您的货物能安全、快速、准时到达目的地，彻底解决您的后顾之忧，降低您的综合成本，承接广东珠三角至国内各大、中城市的货物运输，在广州、惠州、东莞、义乌、杭州、上海均设有分公司。 深圳市华胜源物流有限公司一直以来都以虚心检讨、精益求精、敬业守信、挑战创新的理念来指导自身的工作行为，有雄心、也有信心将深圳市华胜源物流有限公司建立成优质的物流企业。但我们深知自身在技术、管理上还有诸多不足，故立志建立一个开放的学习型的组织，提升公司员工整体的专业水平，向现代化物流经营管理迈进。真诚希望与工商企业和物流同行采取多种方式进行长期合作，并以此为起点，与经营理念相似者结为联盟，互助互赖，相互学习，共同进步。 1）正规的运输企业，让您省心、让您放心。 2）从门到门，一对一的专人跟踪服务。 3）天天发车、准时、准点、安全快捷、代办货物保险。 5）各种高低档和精密大中小货物，提供全封闭的包装服务。 6）运费结算方式灵活，根据不同情况可现结、货到付款、月结等，欢迎厂家合作</p><p><img src=\"http://img.hao56123.com/hao56/a35.jpg\"/></p><p><strong>服务承诺：</strong>< br > 运价平：享受铁道部门的优惠政策, 价格优，部分城市包车，价格更平于空运一半。< br > 时效高：天天准点发车，按时到达，不受天气等影响，其它运输方式无法比拟。< br > 超便捷：上门收货、送货上门、车站自提，任由客户选择，方便快捷。< br > 网络全：网络遍布各地，各地城市几乎都可以通达，900多城市都可以办理。< br > 包装好:提供各种家具、家电、衣物、易碎物品等物品包装,木箱,纸箱,毛毯,泡沫,胶带等各种包装材料。< br > 取送货:提供上门取货、搬运、包装、运输、送货等全程门到门服务。< br > 保险全:提供正式保险单据全程保险全程服务真正的全程无忧损坏有所赔赔偿快速手续简便。< br > 速度快：一线城市一到俩天到达 </ p >< p > 华胜源物流随车备有客户信息反馈单，随时了解运输过程中的意见和建议，可签回单，同时建立客户档案、客户走访卡、定期走访客户，了解客户要求，完善我们的服务质量。</ p > "));
            var c2 = jb.Cut(sl.scrub("<p>珠海到上饶物流公司备有专人热线，对货物全程监控，24小时为您提供货物查询，业务咨询，信息反馈，监督等服务，实现了诚信、准时、安全、便利的服务目标，赢得了国内各地广大客户的支持和信赖。</p><p>广东前锦供应链管理有限公司珠海业务部是一家专业从事国内物流、货运、仓储、配送等服务为一体的现代化物流企业。专业物流线路遍布全国，具有雄厚的物流运输实力我们坚持以诚信为根本，在物流价格及服务上让客户更加满意。为了更有利的参与市场竞争，以同行最低价格愿为一些有信誉、发货量大的企业签订长年运输合同，并能放一定数量资金作为风险保证。</p><p>广东前锦供应链管理有限公司珠海业务部主要经营国内各地的长短途整车零担公路运输业务，集仓储包装、物流配送、搬家为一体的正规货运物流公司。公司自成立以来始终坚持规范化管理，人性化服务的宗旨，本着“诚信为金、服务至上”的宗旨，历经多年风雨。公司现已拓展客户服务网络，能够为顾客的货物流通、包装、货运仓储等提供优质服务。全方位的电脑、电话咨询，让您随时精确的掌握商机;专业的服务态度、尽善尽美的品质，无论是资料、包裹或是大型运输，都能迅速、安全的到达，让服务在没有距离感的情况下无限延伸!公司宗旨：可靠的信誉，是本公司生存的力量。低廉的价格，让您获得更大的利润。快捷的速度，为您节省更多的时间。专项的保险，为您解决后顾之忧。服务宗旨：以人为本，开拓创新，高效务实，当天受理，当天装车，当天发货。 保真配送，全程代理，全程监控.</p><img src=\"http://img.hao56123.com/hao56/a19.jpg\"/><p><strong>经验丰富的司机队伍</strong>< br > 1.我们的司机具备多年驾驶经验、熟悉路况、服务态度好以客为本。手机保持全线开机及时向客户及公司反馈行驶状况。< br > 2.车队有5吨—80吨，5米—17米车辆组成。采用当地车走当地线、全程高速、安全快捷。</ p >< p > 前锦供应链自成立以来，一直坚持“自强、诚信、开拓、创新”的立身之本，秉承“真诚合作，携手共进”的经营理念，致力于为社会和广大客户提供准确、及时、经济、安全的现代物流服务。</ p > "));

            var c1Only = c1.Keys.ToArray().Except(c2.Keys.ToArray());
            var c2Only = c2.Keys.ToArray().Except(c1.Keys.ToArray());
            var cs1 = new Simhash();
            cs1.GenerateSimhash(c1);//16045690984833335023

            var cs2 = new Simhash();
            cs2.GenerateSimhash(c2);//16045690984833335023

            var cs12 = cs1.distance(cs2);

            Console.WriteLine();
            #endregion


            #region jieba分词+SimHash
            var ciDic1 = jb.Cut("<p>东莞到松原物流承接国内各地整车零担运输业务。可调度4.2米到17.5米各类车型，每天发车，专线直达，保证客户托运货物定时定点安全到达。1.全年365天24小时提供优质服务。广州到绍兴物流本着“至诚至信、精益求精”的经营理念，以客户为中心，以诚信为准则，以满意为宗旨，与客户携手共进，合作双赢，共创美好的明天！</p><p>江苏荣强达物流科技有限公司广州业务部为了使货物安全起见，对客户高度负责态度，员工均经过专业培训并从事货物运输多年，具有良好的营运意识及物流经验，立志于取信客户，真实做事，诚实待人，互惠互利，树立新一代物流公司形象，上江苏荣强达物流科技有限公司广州业务部全程呵护，您百分百放心托付。</p><p>江苏荣强达物流科技有限公司广州业务部主营广州到全国各地整车零担运输往返业务，公司拥有一批专业的管理人员和专业的运输队伍，以严格，科学的管理手段，<br>二、长途搬家　　工作、学习、婚姻导致异地搬家，大到家具，小到水，一个都不能少......千头万绪，杂乱无章，的价位一样德江物流物流为您解除后顾之忧，专业包装、快捷运输。多年经营长途搬家业务，免费上门实时测量，预估摆放位置，丈量搬运通道，专家货物包装，对特殊物品(钢琴，电脑，易碎品)等进行安全包装，确保无损到达。<br>三、搬厂服务　　您的公司或企业因种种原因迁移到新址，您不要为设备的搬迁而烦恼，德江物流物流以专业的队伍来为您解决这个困难。各种专业的设备，机械应有尽有，使您能放下心来谋划公司更大的发展。<br>四、行李托运　行李多而庞杂，不便自己携带，那么德江物流是较好的选择，电子化联网、跟踪订单，方便快捷，保安全、时效。<br>五、货物保险　　与保险公司长期合作，保您的权益不受损失。公路、铁路、航空，无论您选择哪一种运输方式，圣通伟业物流都会为您提供热情周到的服务。</p><p>荣强达物流有充足的车源，随时可以调配，您只要有货，无论何时、何地，我们都能快速提供免费上门提货，安全、可靠、快速直达的整车运输服务。车辆型号主要有：4.2米、6.8米、7.6米、8.6米、9.6米、12.5米、13米、16米、17.5米的平板车、半挂车、高栏车、集装箱车、冷藏车供您选择，运输车源约1000台！</p>");
            var ciDic2 = jb.Cut("<p>广州到绍兴物流本着“至诚至信、精益求精”的经营理念，我们以客户为中心，以诚信为准则，以满意为宗旨，与客户携手共进，合作双赢，共创美好的明天！</p><p>江苏荣强达物流科技有限公司广州业务部为了使货物安全起见，对客户高度负责态度，员工均经过专业培训并从事货物运输多年，具有良好的营运意识及物流经验，立志于取信客户，真实做事，诚实待人，互惠互利，树立新一代物流公司形象，上江苏荣强达物流科技有限公司广州业务部全程呵护，您百分百放心托付。</p><p>江苏荣强达物流科技有限公司广州业务部主营广州到全国各地整车零担运输往返业务，公司拥有一批专业的管理人员和专业的运输队伍，以严格，科学的管理手段，<br>五、货物保险　　与保险公司长期合作，保您的权益不受损失。有些公路、铁路、航空，无论您选择哪一种运输方式，与此同时圣通伟业物流都会为您提供热情周到的服务。<br>二、长途搬家　　工作、学习、婚姻导致异地搬家，大到家具，小到水，一个都不能少......千头万绪，杂乱无章，的价位一样德江物流物流为您解除后顾之忧，专业包装、快捷运输。专家货物包装，对特殊物品(钢琴，电脑，易碎品)等进行安全包装，多年经营长途搬家业务，免费上门实时测量，预估摆放位置，丈量搬运通道，由此可见确保无损到达。<br>三、搬厂服务　　甚至您的公司或企业因种种原因迁移到新址，您不要为设备的搬迁而烦恼，德江物流物流以专业的队伍来为您解决这个困难。各种专业的设备，机械应有尽有，使您能放下心来谋划公司更大的发展，更好的未来。<br>四、行李托运　行李多而庞杂，不便自己携带，那么德江物流是较好的选择，电子化联网、跟踪订单，方便快捷，保安全、时效。</p><p>荣强达物流有充足的车源，随时可以调配，您只要有货，无论何时、何地，我们都能快速提供免费上门提货，安全、可靠、快速直达的整车运输服务。车辆的型号主要有：4.2米、6.8米、7.6米、8.6米、9.6米、12.5米、13米、16米、17.5米的平板车、半挂车、高栏车、集装箱车、冷藏车供您选择，还有运输车源约1000台！</p>");

            var c1e = ciDic1.Keys.ToArray().Except(ciDic2.Keys.ToArray());
            var c2e = ciDic2.Keys.ToArray().Except(ciDic1.Keys.ToArray());

            var ss1 = new Simhash();
            ss1.GenerateSimhash(ciDic1);//2450326693593136057

            var ss2 = new Simhash();
            ss2.GenerateSimhash(ciDic2);//3026778632624192441

            var dis12 = ss1.distance(ss2);
            #endregion

            #region SimHash
            //simhash
            var sh = new Simhash();
            sh.GenerateSimhash("<p>东莞到松原物流承接国内各地整车零担运输业务。可调度4.2米到17.5米各类车型，每天发车，专线直达，保证客户托运货物定时定点安全到达。1.全年365天24小时提供优质服务。广州到绍兴物流本着“至诚至信、精益求精”的经营理念，以客户为中心，以诚信为准则，以满意为宗旨，与客户携手共进，合作双赢，共创美好的明天！</p><p>江苏荣强达物流科技有限公司广州业务部为了使货物安全起见，对客户高度负责态度，员工均经过专业培训并从事货物运输多年，具有良好的营运意识及物流经验，立志于取信客户，真实做事，诚实待人，互惠互利，树立新一代物流公司形象，上江苏荣强达物流科技有限公司广州业务部全程呵护，您百分百放心托付。</p><p>江苏荣强达物流科技有限公司广州业务部主营广州到全国各地整车零担运输往返业务，公司拥有一批专业的管理人员和专业的运输队伍，以严格，科学的管理手段，<br>二、长途搬家　　工作、学习、婚姻导致异地搬家，大到家具，小到水，一个都不能少......千头万绪，杂乱无章，的价位一样德江物流物流为您解除后顾之忧，专业包装、快捷运输。多年经营长途搬家业务，免费上门实时测量，预估摆放位置，丈量搬运通道，专家货物包装，对特殊物品(钢琴，电脑，易碎品)等进行安全包装，确保无损到达。<br>三、搬厂服务　　您的公司或企业因种种原因迁移到新址，您不要为设备的搬迁而烦恼，德江物流物流以专业的队伍来为您解决这个困难。各种专业的设备，机械应有尽有，使您能放下心来谋划公司更大的发展。<br>四、行李托运　行李多而庞杂，不便自己携带，那么德江物流是较好的选择，电子化联网、跟踪订单，方便快捷，保安全、时效。<br>五、货物保险　　与保险公司长期合作，保您的权益不受损失。公路、铁路、航空，无论您选择哪一种运输方式，圣通伟业物流都会为您提供热情周到的服务。</p><p>荣强达物流有充足的车源，随时可以调配，您只要有货，无论何时、何地，我们都能快速提供免费上门提货，安全、可靠、快速直达的整车运输服务。车辆型号主要有：4.2米、6.8米、7.6米、8.6米、9.6米、12.5米、13米、16米、17.5米的平板车、半挂车、高栏车、集装箱车、冷藏车供您选择，运输车源约1000台！</p>");
            var sh2 = new Simhash();
            sh2.GenerateSimhash("<p>广州到绍兴物流本着“至诚至信、精益求精”的经营理念，我们以客户为中心，以诚信为准则，以满意为宗旨，与客户携手共进，合作双赢，共创美好的明天！</p><p>江苏荣强达物流科技有限公司广州业务部为了使货物安全起见，对客户高度负责态度，员工均经过专业培训并从事货物运输多年，具有良好的营运意识及物流经验，立志于取信客户，真实做事，诚实待人，互惠互利，树立新一代物流公司形象，上江苏荣强达物流科技有限公司广州业务部全程呵护，您百分百放心托付。</p><p>江苏荣强达物流科技有限公司广州业务部主营广州到全国各地整车零担运输往返业务，公司拥有一批专业的管理人员和专业的运输队伍，以严格，科学的管理手段，<br>五、货物保险　　与保险公司长期合作，保您的权益不受损失。有些公路、铁路、航空，无论您选择哪一种运输方式，与此同时圣通伟业物流都会为您提供热情周到的服务。<br>二、长途搬家　　工作、学习、婚姻导致异地搬家，大到家具，小到水，一个都不能少......千头万绪，杂乱无章，的价位一样德江物流物流为您解除后顾之忧，专业包装、快捷运输。专家货物包装，对特殊物品(钢琴，电脑，易碎品)等进行安全包装，多年经营长途搬家业务，免费上门实时测量，预估摆放位置，丈量搬运通道，由此可见确保无损到达。<br>三、搬厂服务　　甚至您的公司或企业因种种原因迁移到新址，您不要为设备的搬迁而烦恼，德江物流物流以专业的队伍来为您解决这个困难。各种专业的设备，机械应有尽有，使您能放下心来谋划公司更大的发展，更好的未来。<br>四、行李托运　行李多而庞杂，不便自己携带，那么德江物流是较好的选择，电子化联网、跟踪订单，方便快捷，保安全、时效。</p><p>荣强达物流有充足的车源，随时可以调配，您只要有货，无论何时、何地，我们都能快速提供免费上门提货，安全、可靠、快速直达的整车运输服务。车辆的型号主要有：4.2米、6.8米、7.6米、8.6米、9.6米、12.5米、13米、16米、17.5米的平板车、半挂车、高栏车、集装箱车、冷藏车供您选择，还有运输车源约1000台！</p>");
            var dis = sh.distance(sh2);
            #endregion
        }
    }
}
